5 DIM A$(1),D(8),D2(8),S(1),A(8) 7 PRINT"[147]VIC FLIP-64" 8 PRINT"FORMERLY VIC FLIP-IV" 9 PRINT" BY JIM DUBROUILLET AND SEAN SMITH" 10 PRINT" MODIFIED FOR THE C-64 BY R. THIBAULT" 15 PRINT"INSTRUCTIONS (Y/N)?"; 16 GETA$:IF A$="" THEN 16 17 IF A$="N" THEN 21 18 IF A$><"Y" THEN 16 19 GOTO 2001 21 INPUT"[147]NAME";A$:INPUT"ANOTHER";B$:X=1:Z=1 22 IF LEFT$(B$,3)<>"COM" THEN 25 23 A=VAL(RIGHT$(B$,1))-1:LF=-(A=0)*999-(A=1)*25-(A=3)*.63:CO=1:GOTO 26 25 IFRND(1)>.5THENC$=A$:A$=B$:B$=C$ 26 PRINTA$" WHITE OR BLACK";:INPUTC$:IFC$="B"THENC$=B$:B$=A$:A$=C$:CO=2*CO 28 INPUT"# ACROSS";N:INPUT"UP & DOWN";O:A$(1)=A$:A$(0)=B$:V=15 29 N=2*INT((INT(-((N<11)AND(N>2))*N-(N>10)*10-(N<4)*8))/2) 30 C$(0)="[144]":N1=2*INT(INT(-((O<11)AND(O>2))*O-(O>10)*10-(O<4)*N)/2) 31 PRINT"[147]":O=N-1:C$(1)="" 32 FORA=0TO8:READD(A):NEXT:DATA-41,-40,-39,-1,0,1,39,40,41 33 S(0)=2:N3=N/2:N4=N3+1:N5=N1/2:N6=N5+1:N7=N3*N5:N8=N7 34 FOR U=1 TO 4:IF INT(INT(N7^(1/U))^U)=N7 THEN N8=INT(N7^(1/U)) 35 NEXT:N7=N8:FORA=1TO2*N1STEP2 36 FORB=1TO2*NSTEP2:E=1064+40*A+B:POKEE-41,207:POKEE-40,208 37 POKE E-1,204:POKE E,250:NEXT B,A:PRINT""; 38 S(1)=2:S(0)=2:FOR A=55296 TO 56295:POKE A,5:NEXT A 39 GOSUB 3000:REM SOUND 40 FOR A=1 TO (N1-1)/2:PRINT"";:NEXT:PRINT"[157][157]" 41 FOR A=1 TO O/2:PRINT"";:NEXT 42 PRINT"[207][208][144][207][208][157][157][157][157][204][186][144][204][186][157][157][157][157][207][208][157][157][204][186][204][186][145][157][157][207][208]":C=1 50 C=-(C=0) 51 PRINT" "C$(C)A$(C)"[144]"S(0)""S(1):IF W1=4 THEN 100 55 IF CO>0 AND CO-1=C THEN 300 60 GOTO 117 100 PRINT"";A$;S(1) 101 PRINT"";B$;S(0) 102 BC=1:BB=0:FOR XX=0 TO 21:POKE 53280,BC:POKE 53281,BB:TT=BC:BC=BB:BB=TT 103 FOR YY=0 TO 40:NEXT YY:NEXT XX 104 POKE 53281,6:POKE 53280,14:GOSUB 3000:REM END OF GAME 105 PRINT"PLAY AGAIN?" 106 GET C$:IF C$><"Y" AND C$><"N" THEN 106 107 IF C$="Y" THEN RESTORE:GOTO21 109 CLR:PRINT"[147]";:GOTO63010 117 QZ=55334+2*X+80*(Z-1):QW=QZ-54272:R=PEEK(QZ) AND 7:GOSUB 140 118 POKEQZ+1,C:POKEQZ+40,C:POKEQZ+41,C:POKEQW+1,127:POKEQW+40,127 119 POKEQW+41,127:POKE QZ,C 120 POKE QW,127:P=PEEK(56320) 121 X=X-((P AND 8)=0)+((P AND 4)=0) 125 Z=Z-((PAND2)=0)+((PAND1)=0):GOSUB140:POKE QZ,R:POKE QW,207:POKEQZ+1,R 126 POKEQZ+40,R:POKEQZ+41,R:POKEQW+1,208:POKEQW+40,204:POKEQW+41,250 127 IF (P AND 16)><0 AND C$><"F" THEN 117 130 GOTO 1000 140 GET C$:IFC$="_"THEN63010 141 X=X+(C$="J")-(C$="K"):Z=Z+(C$="I")-(C$="M") 142 Z=(Z+(Z>N1)-1)*-(Z>0)+1:X=(X+(X>N)-1)*-(X>0)+1:RETURN 200 B=PEEK(F-54272):IF B><207 THEN FL=FL-D2(A):D2(A)=0:GOTO 1014 202 GOTO 1011 300 X=0:Z=0:FM=0:SA=0:HV=-9:X2=0:Z2=0:MF=0 302 SA=SA+1:X=X*-(X0 THEN 405 305 IF MF=0 AND SA=N1*N THEN W1=W1+1:GOTO 50 306 IF SAN3)*N3+(XN5)*N5+(ZINT(CA)):VL=(CB-(CB=0))*CA+FL*CA*LF 407 XZ=0:IF VL>HV OR (VL=HV AND FL>MF) THEN XZ=1 408 IF XZ=1 THEN HV=VL:X2=X:Z2=Z:FOR A=0 TO 8:A(A)=D2(A):NEXT:MF=FL 409 GOTO 305 1000 FL=0:E=QZ:DX=135 1001 IF (7 AND PEEK(E))<2 THEN ON 1-(CO=C+1) GOTO 1016,303 1002 FOR A=0 TO 8:IF A=4 THEN NEXT A 1005 D2(A)=0 1006 D2(A)=D2(A)+2 1007 FL=FL+2:F=E+D(A)*D2(A) 1008 IF (7 AND PEEK(F))>1 THEN FL=FL-D2(A):D2(A)=0:GOTO 1014 1009 GOTO 200 1010 IF (7 AND PEEK(F))>1 THEN FL=FL-D2(A):D2(A)=0:GOTO 1014 1011 IF (7 AND PEEK(F))=-(C=0) THEN 1006 1013 FL=FL-2 1014 NEXT A 1015 IF CO-1=C THEN 303 1016 IF FL<1 AND W=3 THEN W=0:W1=W1+1:GOTO 50 1017 IF FL<1 THEN W=W+1:C=-(C=0):GOTO 50 1020 W1=0:W=0:S(C)=S(C)+1+FL/2:S(-(C=0))=S(-(C=0))-FL/2:FOR A=0 TO 8 1025 FORY=0TOD2(A)-2STEP2:F=E+D(A)*Y:POKEF,C:POKEF+1,C:POKEF+40,C 1026 POKEF+41,C:DX=DX+1:NEXT Y,A 1027 IF S(0)+S(1)=N*N1 THEN 100 1030 GOSUB 3000:GOTO 50 2001 REM INSTRUCTIONS 2125 PRINT"[147]THE OBJECT OF THIS GAME IS TO END" 2126 PRINT" WITH MORE SQUARES THAN YOUR":PRINT" OPPONENT HAS." 2127 PRINT"YOU ARE EACH A DIFFERENT COLOR," 2128 PRINT" AND START WITH TWO SQUARES EACH." 2129 PRINT"TO MAKE A LEGAL FLIP,PLACE THE CURSOR" 2130 PRINT" SO THAT 1 OR MORE OF YOUR" 2131 PRINT" OPPONENT'S SQUARES ARE BETWEEN THE" 2132 PRINT" CURSOR AND ONE OF YOUR SQUARES." 2133 PRINT"DO YOU WANT TO USE A JOYSTICK (Y OR N)?" 2139 GETA$:IFA$><"Y"ANDA$><"N"THEN 2139 2140 IF A$="N" THEN 2144 2141 PRINT"[147]MOVE THE CURSOR WITH THE JOYSTICK IN" 2142 PRINT"PORT 2 UNTIL IT IS IN POSITION FOR A LEGAL FLIP,"; 2143 PRINT" THEN PUSH THE FIRE BUTTON.":GOTO 2155 2144 PRINT"[147] " 2145 PRINT" ^ " 2146 PRINT" I " 2147 PRINT" " 2148 PRINT" M " 2149 PRINT" V " 2150 PRINT" " 2151 PRINT"THESE KEYS WILL MOVE THE CURSOR IN" 2152 PRINT" THE INDICATED DIRECTION." 2153 PRINT"WHEN THE CURSOR IS IN POSITION,":PRINT" PRESS F." 2155 PRINT"IF A LEGAL FLIP, COMPUTER WILL FLIP" 2156 PRINT"ALL THE SQUARES WHICH ARE O.K." 2158 PRINT"PRESS ANY KEY TO GO ON" 2159 GET A$:IF A$="" THEN 2159 2160 PRINT"[147]POSSIBLE BOARD SIZES ARE 4,6,8,& 10." 2161 PRINT" YOU WILL INPUT THESE LATER." 2163 PRINT"IF YOU DO NOT INPUT A SIZE, THE" 2164 PRINT" COMPUTER WILL USE 8 AS THE SIZE." 2165 PRINT" 4 IS FOR VERY SHORT GAMES.":PRINT" 6 IS FOR SHORT GAMES." 2167 PRINT" 8 IS STANDARD SIZE." 2168 PRINT" 10 IS FOR LONG GAMES." 2169 PRINT"PRESS ANY KEY TO GO ON" 2172 GET A$:IF A$="" THEN 2172 2180 PRINT"[147]TO PLAY THE COMPUTER,TYPE COM1,COM2," 2190 PRINT" COM3,OR COM4 FOR 'ANOTHER'." 2200 PRINT"THE HIGHER THE NUMBER THE HARDER THE":PRINT" GAME." 2210 PRINT"THE GAME ENDS WHEN NO SQUARES REMAIN":PRINT" GREEN." 2220 PRINT"THE COMPUTER DECIDES WHO CHOOSES THE":PRINT" COLOR." 2222 PRINT"YOU MAY PRESS '_' TO EXIT THE GAME" 2223 PRINT" WHILE PLAYING." 2230 PRINT"PRESS ANY KEY TO START GAME" 2240 GET A$:IF A$="" THEN 2240 2250 GOTO 21 3000 REM FLIP SOUND 3010 SS=54272 3020 POKE SS+1,20 3030 POKE SS+5,9 3040 POKE SS+6,9 3050 POKE SS+24,15 3060 POKE SS+4,17 3070 FOR XY=1 TO 40: NEXT XY 3080 POKE SS+4,16 3090 FOR XY=1 TO 400:NEXT XY 3100 FOR XY=15 TO 0 STEP -1:FOR YY=0 TO 20:NEXT YY 3110 POKE SS+24,XY:NEXT XY:REM LOWER VOL 3120 FOR XY=1 TO 24:POKE SS+XY,0:NEXT XY:REM CLEAR SOUND 3130 RETURN 63000 REM CONNECT BACK TO L.S. 63002 PRINT"[147]WOULD YOU LIKE TO PLAY AGAIN?" 63004 POKE198,0:WAIT198,1:GETA$:IFA$<>"Y"ANDA$<>"N"THENPOKE53280,RND(1)*15:GOTO63004 63006 IFA$="Y"THEN21 63008 : 63010 PRINT"[147]LOAD"CHR$(34)"PAYLOAD"CHR$(34)",8":PRINT"RUN" 63020 POKE631,13:POKE632,13:POKE198,2:END